package cn.rxyb.core.random;

/**
 * @author YJH
 * @version 1.0
 * @description Long 随机生成数
 * @date 2020/6/26 15:01
 */
public class LongRandom implements IRandom {

    private static LongRandom instance = null;

    private LongRandom() {
    }

    public static LongRandom getInstance() {
        if (null == instance) {
            instance = new LongRandom();
        }
        return instance;
    }


    /**
     * 获得随机数
     *
     * @return 随机数
     * @since 3.3.0
     */
    public long random() {
        return this.getRandom().nextLong();
    }

    /**
     * 获得指定范围内的随机数 [0,limit)
     *
     * @param limit 限制随机数的范围，不包括这个数
     * @return 随机数
     */
    public long random(long limit) {
        return this.getRandom().nextLong(limit);
    }

    /**
     * 获得指定范围内的随机数
     *
     * @param min 最小数（包含）
     * @param max 最大数（不包含）
     * @return 随机数
     * @since 3.3.0
     */
    public long random(long min, long max) {
        return this.getRandom().nextLong(min, max);
    }
}
